Implementation of relational databases and user interfaces typically requires a close coordination between domain information/subject matter experts, database developers/engineers, and software application developers/engineers to create a responsive database and user interface that meets the needs of a given end-user. From the users' perspective, the combined functionality of underlying system operating system, relational database engine, defined constraints, data relationships, data structure, and the complete family of user interface screens required for viewing, editing, and searching are often collectively referred to as “a database.” From the technical perspective, the end product is typically the result of complex, planned integration and software development activities required to (1) define and (2) build required relational database structure (e.g., required database tables, columns, constraints, views, sequences, grants, rules and other database elements) within the relational database using a specifically designed database language (e.g., a structured query language), and then to (3) design a suitable user interface environment using applicable software programming languages (e.g., VisualBasic, HTML, Java, C, etc.) to develop a number of interrelated user interface screens and/or pages whereby a user can perform required functions. A relational database is a database in which the database is perceived by its users as a collection of tables and operators at the user's disposal (e.g., for data retrieval) are operators that generate new tables from old. See, e.g., “An Introduction to Database Systems,” C. J. Date, Vol. I, Fourth Edition, pg. 20 (1986).
Note that the user interface design and development (step 3) usually includes high level design, detailed design, coding, testing, system integration, and deployment phases. As such, the user interface design and development is usually the most time consuming activity. As a simple example, a complete database and user interface effort might require two (2) months to derive the database structure (step 1), one (1) month to implement the structure (step 2), and twelve (12) months to create the user interface (step 3). Moreover, after the database and user interface development is completed, any required data structure changes will necessitate a repeat of all three steps, although typically at a smaller scale than the original development effort. Such changes and iterations are normal during the lifetime of any database application.
Common Complexities in Database Development
User input received from the developed user screens, such as search parameters, data editing requests, and data additions or deletions, are communicated to the underlying relational database engine for action, then results are received from the database for display to satisfy the initiating user request. This input is validated through data checking and rule application. Errors must be handled by the application where they originate from the operating system, the database, the interface application software, or user input. Additionally, if the database application is intended to support distributed use by separate classes of users (e.g., edit, view, “super user”), additional structure, logic, screens, and security mechanisms must be in place to create, manage, and protect information related to user accounts, privileges, and accountability. In a government mandated secure data environment, e.g., decreed by DoD Directive DCID 6/3, the operating system, database, and user environment additionally detect, manage, process, and protect individual database elements based on a security classification labeling model. Information retrieval in this data environment includes capabilities to determine the level of classification a user may receive, and restrict data retrieved from the relational database for display to a level not exceeding the user's authorized level.
A Nominal Database Development Approach
A conventional approach to database and user interface development following the described model would entail dedicated time between technical staff (e.g., database and software engineers) and the information domain/subject matter experts in developing an information hierarchy, model, and general rule set. A formal relational data structure would then be built based on this knowledge containing the required data tables, linking tables, constraints, rules, and triggers required to maintain data integrity throughout the planned database lifecycle. User interface screens would be typically developed by separate software specialists to provide the required user functionality, display characteristics, and input validation, with integration of each screen into a composite application directly linked to the underlying database structure. Deployment of the initial database application would entail exhaustive testing of data entry, retrieval, error trapping, desired application flow, and an initial population with test or demonstration data. If the database application is required to operate in a secure environment, e.g., a DoD mandated secure environment, specific tests demonstrating handling, protection, storage, and retrieval of classified data will additionally be necessary prior to end user delivery. Upon successfully demonstrating the database and its associated user interface screens meet the user's test criteria, the database may be declared formally available for end-user training and the initial population begins.
A typical deployment of a database and application will result in user-identified errors and requests for changes in the interface, functionality, or underlying data structure. To accommodate these requests, or correct errors, the development team must identify the source, if an error, and correct it through recoding and recompiling, or for change requests, modify the database or user interface elements through redesign, recoding, and recompiling, prior to deploying a next version of the database application. Depending on the severity of the error, or the significance of the requested change, this may entail a complete halt in use of the database during the maintenance period, resulting in a loss of productivity where use of the database was required. This cycle of error/change, identification, modification, change, and redeployment must occur to some degree for nearly any adjustment in the deployed database application. Changes in the underlying data structure must be reflected in updates to user interface screens and options. Changes required in the user interface, may or may not impact the underlying logic or constraints of the data structure, but thorough examination and testing must demonstrate this prior to redeployment.
Consequently, the conventional approach for developing and deploying an integrated user interface and supporting relational database infrastructure requires substantial planning, design, development, and testing prior to delivery to the end user. In many cases, particularly in government functional domains, the underlying information domain or required data content may substantially change during the course of the development process. This results in an immediate need to begin redesign, integration, and test as soon as the database is officially declared an operational capability. In other cases, the cost of the time required to follow a conventional database development process cannot meet the need for relational database and user interface support required for the critical analyses or operational tasks increasingly common in government and commercial activities today.